import FileManager from 'react-native-filesystem';

export default class FileUtil{

    /** 写入内容到文件 */
    static writeFile(filePath:string, stringToSave:string, callback:Function): void{
        FileManager.writeToFile(filePath, stringToSave)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('写入失败', data);
                callback(false);
            });
    }

    /** 追加写入内容到文件 */
    static appendFile(filePath:string, stringToAppend:string, callback:Function): void{
        FileManager.appendToFile(filePath, stringToAppend)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('写入失败', data);
                callback(false);
            });
    }

    /** 读取文件 */
    static readFile(filePath:string, callback:Function): void{
        FileManager.readFile(filePath)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('读取失败', data);
                callback("");
            });
    }

    /** 删除文件 */
    static deleteFile(filePath:string, callback:Function): void{
        FileManager.delete(filePath)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('删除失败', data);
                callback(false);
            });
    }

    /** 是否存在文件 */
    static isExistDoc(filePath:string, callback:Function): void{
        FileManager.fileExists(filePath)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('是否存在文件失败', data);
                callback(false);
            });
    }

    /** 是否存在文件夹 */
    static isExistFolder(filePath:string, callback:Function): void{
        FileManager.directoryExists(filePath)
            .then((data)=>{
                callback(data);
            })
            .catch((data)=>{
                console.log('是否存在文件夹失败', data);
                callback(false);
            });
    }

    /** 返回绝对路径 */
    static absoluteFile(filePath:string):string{
        return FileManager.absolutePath(filePath);
    }
}


